
#ifndef _IIC_H
#define _IIC_H

#include <stdint.h>

//#define IIC_LSB // 定义了则IIC在数据传输时低位在前
//#define RC_MCU

#ifdef RC_MCU
#define EE_SCL_PIN GPIO_PIN_10 // 模拟IIC的SCL信号
#define EE_SDA_PIN GPIO_PIN_11 // 模拟IIC的SDA信号
#else
#define EE_SCL_PIN GPIO_PIN_6 // 模拟IIC的SCL信号
#define EE_SDA_PIN GPIO_PIN_7 // 模拟IIC的SDA信号
#endif

void IIC_Init(void);

/*******************************************************************************
 * 函数名：IIC_Start
 * 功  能：起始信号
 * 参  数：无
 * 返回值：无
 * 说  明：无
 *******************************************************************************/
void IIC_Start(void);

/*******************************************************************************
 * 函数名：IIC_Stop
 * 功  能：结束信号
 * 参  数：无
 * 返回值：无
 * 说  明：无
 *******************************************************************************/
void IIC_Stop(void);

/*******************************************************************************
 * 函数名：IIC_Ack
 * 功  能：应答信号
 * 参  数：无
 * 返回值：无
 * 说  明：无
 *******************************************************************************/
void IIC_Ack(void);

/*******************************************************************************
 * 函数名：IIC_NoAck
 * 功  能：非应答信号
 * 参  数：无
 * 返回值：无
 * 说  明：无
 *******************************************************************************/
void IIC_NoAck(void);

uint8_t IIC_WaitAck(void);

/*******************************************************************************
 * 函数名：IIC_WriteByte
 * 功  能：SDA线上输出一个字节
 * 参  数：u8Data需要写入的数据
 * 返回值：无
 * 说  明：无
 *******************************************************************************/
void IIC_WriteByte(uint8_t u8Data);

/*******************************************************************************
 * 函数名：IIC_ReadByte
 * 功  能：读一个字节
 * 参  数：无
 * 返回值：读出的数据
 * 说  明：无
 *******************************************************************************/
uint8_t IIC_ReadByte(void);

#endif
